In order for a mobile terminal, such as cellular handset, to establish a connection with a wireless network, the mobile terminal typically needs to synchronize itself to the wireless network. In a code division multiple access (CDMA) or wideband-CDMA (WCDMA) network, handset-network synchronization generally consists of two steps. The first is referred to as code-synchronization, while the second is referred to as frequency synchronization.
In CDMA systems, all base stations utilize the same frequency band, however, they are uniquely identified by the particular pseudo-random (PN) code that they use. Upon power-up the mobile terminal typically attempts to identify the nearest base station by searching for and identifying the strongest PN code. This process is typically referred to as code-synchronization. Next, the mobile terminal typically initiates a frequency synchronization process in which it tries to exactly match its oscillator frequency with that of the identified base-station. However, although two oscillators may be set in the factory to oscillate at the same frequency, perfect matching is almost never achieved without the use of a feedback network.
Code Synchronization
The base station in a CDMA network broadcasts a PN code. A PN code may be characterized as sequence of N+1's and −1's. The code is different for each base station. Assume that the code number b transmitted from the bth base station is an N symbols long code cb,n,n=0, . . . ,N−1. Next assume that these symbols when received by the mobile terminal may be denoted as rt=cb,(tmod N)+nt+It, where the index t represents the time index, cb,(tmod N) represents the code number b transmitted at time t, nt represents the noise component at time t, and It represents interference from other base stations. Using the received samples, the mobile terminal must simultaneously search for all the different codes that may be sent from different base stations and identify the first element of the code. This is most commonly achieved using a matched filter or a correlator.
The output yt, of a matched filter at time t, querying the b'th base station may be represented by:
                              y          t                =                              ∑                          n              =              0                                      N              -              1                                ⁢                                          ⁢                                    r                              t                -                n                                      ⁢                          C                              b                ,                                  N                  -                  1                  -                  n                                            *                                                          Equation        ⁢                                  ⁢        1            N is usually predetermined based upon prior knowledge of the length of the synchronization codes. rt−n is the complex sample received by the mobile terminal at time (t−n). c*b,N−1−n is the complex code transmitted by the base station at time (N−1−n). The operator ‘c*’ denotes the conjugate of ‘c’. In general, c*b,N−1−n is known in advance and is unique to each base station. Note that when the time index t is equal to aN−1, where a is a positive integer number, then we have rt−n=cb,N−1−n+nt−n+It−n. Ignoring the noise and the interference terms results in a maximum for yt given by
      y    max    =            ∑              n        =        0                    N        -        1              ⁢          |              c                  b          ,          n                    ⁢              |        2            ·      
A typical method illustrated in FIG. 1 for code synchronization compares 7 the output |yt| of a matched filter 1 or of a correlator to a predetermined threshold 3. Code synchronization 5 is said to be achieved when the matched filter 1 output magnitude 1 exceeds a pre-determined threshold 3. If the matched filter output magnitude does not exceed a pre-determined threshold 3, the system continues searching 10. Exceeding this threshold usually coincides with the maximum output from the matched filter and indicates the presence of the code at the given time offset (i.e., the code starts at t−N+1). The threshold may be selected to achieve a desired probability of false alarm (i.e., the probability of detecting the code at a wrong offset).
In a low signal to noise ratio environment, the matched filter output rarely reaches the threshold level. Therefore, in a second typical approach illustrated in FIG. 2, the matched filter output magnitude 1 is stored in memory for a set of possible candidates 11. The set of possible candidates 11 consists of different code time offset (i.e., start time of the code) and different code numbers. For each possible candidate 11, the matched filter output magnitude 1 is stored in a memory and averaged over multiple observations. At the end of the averaging period, the stored value with the largest value is selected 13, and if the value exceeds 19, a pre-determined threshold 15, the code acquisition is said to be achieved 17. Otherwise the system continues searching 21. Note that in some cases, the threshold might be set to zero. The detected code number and time offset are the candidate associated with the selected stored value. This approach is referred to as maximum selection code acquisition.
Other variants for code acquisition use multi-dwell and multi stage strategies. See e.g. A. J. Eynon, and T. C. Toer, A Comparison of Multiple Dwell Cell Testing Strategies in Serial Search Direct Sequence Spread Spectrum Code Acquisition, Proc. of Milcom '95, Vol 1, Sand Diego, Calif. pp. 357–361; H. Holma and A Toskala, WCDMA for UTMS, John Wiley and Sons, 2000. These references and all other references herein are hereby incorporated by reference. In a multi-dwell code acquisition approach, the search is done in multiple steps. Generally, each step uses an increasing threshold level and the matched filter output is averaged over a longer period of time before comparison to the threshold. If the averaged value does not exceed the threshold at a given step, the code acquisition algorithm restarts with a different candidate, otherwise it proceeds to the next step until the last step. When the averaged value for the last step exceeds the pre-determined threshold, the code acquisition is said to be achieved.
An example of a multi-stage code acquisition is the cell search procedure employed in Wideband-CDMA. H. Holma and A Toskala, WCDMA for UTMS, John Wiley and Sons, 2000. In W-CDMA, code acquisition is divided in three stages. Slot boundary candidates are identified in the first stage using the Primary Code Synchronization. Based on the one or more slot boundary candidates identified in the first stage, the second stage identifies frame boundary and code group candidates based on the Secondary Code Synchronization. Finally, the third stage identifies, based on the information provided by the second stage, the Gold code transmitted by a base station using the pilot channel. Once a Gold code is successfully detected in the last stage, code acquisition is said to be achieved.
A typical matched filter logic is shown in FIG. 3. Using notation common in the art, z−1 represents a delay element 25 in a matched filter. A delay element 25 is a memory. Typically there are N−1 delay elements 25. Each delay element contains a sample, rj−1 23, received at a previous time instant. In order to better illustrate FIG. 3 and Equation 1, assume that N=10 and t=100. Accordingly, in a first step, when n=0 in Equation 1, rb,100 is multiplied 27 by c*b,9(N−1−n=10−1−0=9) 29. In a second step, when n=1 in Equation 1, rb,99 is multiplied 27 by c*b,8(N−1−n=10−1−1=8). In a third step, the products of steps 1 and 2 are summed 33. These steps are then repeated until n=N−1=9.
One problem with the use of matched filters for code detection is that they generally require a large amount of computation. This is particularly limiting when the code length is large. In this case, an alternative approach may employ a correlator code detector. FIG. 4 shows the functionality of the correlator in block diagram form. As in FIG. 3, z−1 represents a delay element 25, however, unlike the matched filter, the correlator only utilizes one delay element 25 in an accumulator configuration 35. The incoming sequence rb,t 23 is first multiplied 27 with the sequence cb,N−1+t−T*, 37 where b is the code number, N is the code length, t is the time index, and T is the time where the correlator output is observed (sampled). The result of the multiplication is then accumulated 39. The accumulator 35 is reset at time t=T−N+1 41 and sampled at time t=T 43 to yield yt 45.
In order to better illustrate the operation of the correlator, assume that the first symbol of the PN code, cb,0, arrives at the receiver at the tth time index (i.e, tmodN=0). In this case rt=cb,0+nt+It, is presented to the multiplier in FIG. 4. Further assume that the memory element is reset to zero at the t'th time index (i.e., t=T−N+1). Therefore at time t, the receiver unit presents cb,0 to the other input of the multiplier, followed by cb,1 at the (t+1)st time sample, cb,2 at the (t+2)nd time sample, etc. Then at time sample (t+N−1) at the output of the accumulator we will have
            y              t        +        N        -        1              =                  y        T            =                        ∑                      n            =            0                                N            -            1                          ⁢                  |                      c                          b              ,              n                                ⁢                      |            2                                ,ignoring the noise components. This exactly matches the maximum output of the matched filter. However, the correlator output differs from that of the matched filter in that the correlator output is only valid after an accumulation of N samples, whereas a matched filter output is valid every sample. The correlator has 1/Nth the complexity of the matched filter. A matched filter is equivalent to N correlators in parallel.Undesirable Effects of Frequency Offset
The oscillator in a wireless network base-station and the local oscillator in a mobile terminal rarely oscillate at the same frequency. Because of this frequency offset between the basestation and the mobile terminal, the received signal rt at the tth time index (sample) may be represented as: rt=cb,tmodNejΔwtTs where Ts represents the sampling interval (time between two consecutive samples), Δw represents the frequency offset, and ejx=cos x+√−1 sin x. A “frequency recovery loop” is typically used to drive the frequency difference to zero. Once Δw is driven to zero, so-called coherent detection can take place. In the absence of this (when Δw≠0), detection can still take place but it is less efficient and is referred to as non-coherent detection.
Code Synchronization in the Presence of Frequency Offset
One problem affecting the application of matched filters or correlators for acquiring the PN code transmitted from a base station is that as the frequency offset between the base station (network) and mobile terminal increases, the reliability of the code acquisition decreases. The frequency offset between the network and the mobile terminal may increase because of imperfections or variations in the network oscillator, the mobile terminal oscillator, or both. A frequency offset interferes with proper code detection by adding a phase rotation between two consecutive symbols. This is referred to throughout as coherence loss. If a sufficient phase is added between two symbols, then PN code synchronization via the matched filter or correlator becomes unreliable. To illustrate this, assume that the received signal, at time t=aN−1, where a is a positive integer number, may be represented by rt=cb,tmodNejΔwtTs (ignoring noise and interference terms). The matched filter output may then be represented by
            y      t        =                  ∑                  n          =          0                          N          -          1                    ⁢              |                  c                      b            ,            n                          ⁢                  |          2                ⁢                              ⅇ                          j              ⁢                                                          ⁢              Δ              ⁢                                                          ⁢                              w                ⁡                                  (                                      t                    -                    n                                    )                                            ⁢                              T                s                                              .          Typically                      ,      |          c              b        ,        n              ⁢          |      2      is constant for any b and t. If it is further assumed that Δw=2π/(NTs), then yt=0 and code synchronization is impossible.
If the coherence loss produces an unacceptable performance, signal processing techniques must be employed to mitigate this effect. One approach is to correct the frequency of the incoming signal rt by multiplying it by e−jΔŵtTs. However, since Δw is unknown at the receiver, Δw must be scanned through the range of possible values until the synchronization code is detected. R. L. Peterson, R. E. Ziemer and D. E. Borth, Introduction to Spread Spectrum Communications, Prentice Hall, 1995. This approach increases the search time by a factor F, where F is the number of frequencies scanned.
Another approach is to divide the matched filter or correlator into smaller blocks where the coherence loss is negligible (referred to throughout as “coherent filters”) and then add their output non-coherently. Y. E. Wang and T. Ottosson, Cell Search in W-CDMA, IEEE JSAC, Vol. 18, No. 8, August 2000, pp 1470–1481. For example, if a matched filter is divided into S coherent sections of length D (SD=N), the output magnitude of the matched filter sampled at the tth symbol is then given by:
                              |                      y            t                    |                =                              ∑                          s              =              0                                      S              -              1                                ⁢                      |                                          ∑                                  d                  =                  0                                                  D                  -                  1                                            ⁢                                                r                                      t                    -                                          s                      ⁢                                                                                          ⁢                      D                                        -                    d                                                  ⁢                                  c                                      b                    ,                                          N                      -                      1                      -                                              s                        ⁢                                                                                                  ⁢                        D                                            -                      d                                                        *                                                      |                                              Equation        ⁢                                  ⁢        2            
N, again, represents the number of symbols transmitted in a synchronization code by the base-station b. The length of coherent sections is chosen such that
            ∑              d        =        0                    D        -        1              ⁢          ⅇ              j        ⁢                                  ⁢        Δ        ⁢                                  ⁢        w        ⁢                                  ⁢        d        ⁢                                  ⁢                  T          s                      ≈  Dwhich limits the loss due to frequency offset. This approach does not affect the search time, but decreases the processing gain of the detector by a factor S. If a channel estimate is available (in the case of multi-stage acquisition, partial detection can be achieved and be used to provide a reference), it can be used to produce a coherent output. For example, assume the channel estimate for the sth partial matched filter is given by c0s, then the output magnitude of the matched filter would be given by:
                              |                      y            t                    |                =                              ∑                          s              =              0                                      S              -              1                                ⁢                      Real            ⁡                          (                                                c                  s                                      0                    *                                                  ⁢                                                      ∑                                          d                      =                      0                                                              D                      -                      1                                                        ⁢                                                            r                                              t                        -                                                  s                          ⁢                                                                                                          ⁢                          D                                                -                        d                                                              ⁢                                          c                                              b                        ,                                                  N                          -                          1                          -                                                      s                            ⁢                                                                                                                  ⁢                            D                                                    -                          d                                                                    *                                                                                  )                                                          Equation        ⁢                                  ⁢        3            Frequency Synchronization
Once the code synchronization has been achieved, it is used to synchronize the mobile terminal's oscillator frequency with the network frequency of the identified base station through a procedure referred to as frequency synchronization. The code synchronization provides the code number b transmitted by the wireless network and the time index T corresponding to the first symbol of the transmitted code.
The first step to frequency synchronization consists of computing partial code correlations of the input sequence rt=cb,(t−T)modNejΔwtTs+nt, where Ts represents the sampling interval (time between two consequtive samples), Δw represents the frequency offset to be determined and η1 represents the noise component at time J. The partial code correlations are denoted by yk, where k is a new time index after the partial correlators, and are computed over L consecutive received symbols rl. The partial code correlations are given by:
                              y          k                =                              ∑                          l              -                              k                ⁢                                                                  ⁢                L                                                                                      (                                      k                    +                    1                                    )                                ⁢                L                            -              1                                ⁢                                    r              l                        ⁢                          c                              b                ,                                                      (                                          l                      -                      T                                        )                                    ⁢                                      mod                    ⁢                    N                                                              *                                                          Equation        ⁢                                  ⁢        4            
One approach to frequency synchronization determines the frequency offset from K consecutive partial code correlations of length L, yk, . . . , yk+K−1. The K correlator outputs yk, . . . , yk+K−1 are augmented into a P-point vector by appending them with P-K zeros, a P-point Fourier Transform is then taken of the newly formed vector. A. V. Oppenheim and R. W. Schafer, Discrete-Time Signal Processing, Prentice Hall, 2d Ed. 1999. The Fourier Transform in turn delivers an output vector of size P given by:
                              X          ⁡                      (            p            )                          =                                            ∑                                                l                  =                  k                                ⁢                                                                                              k                +                K                -                1                                      ⁢                                          y                l                            ⁢                              ⅇ                                                      -                    j2π                                    ⁢                                                                          ⁢                  p                  ⁢                                                                          ⁢                                      l                    /                    P                                                              ⁢                                                          ⁢              0                                ≤          p          <          P                                    Equation        ⁢                                  ⁢        5            
To obtain better reliability, the Fourier Transform output can be averaged over multiple outputs. The element of the averaged Fourier Transform output vector with the largest value yields the frequency offset estimate. In order to improve the accuracy, an interpolation can also be performed on the averaged Fourier Transform value. Y. E. Wang and T. Ottosson, Cell Search in W-CDMA, IEEE JSAC, Vol. 18, No. 8, August 2000, pp 1470–1481.
Another approach for frequency acquisition employs a differential detection scheme (DD). In this method, a frequency estimate is obtained by multiplying the partial correlation yk+1 with the complex conjugate of the previous partial correlation yk (k is the time index after the correlator). Assuming |ck|2=1, we obtain yk+1y*k≈λejΔwLTs (ignoring the noise term), where λ is a proportionality constant. Since L, and Ts are known constants, this provides a metric from which the frequency offset can be derived.
The frequency offset can be computed from the differential detector (DD) output metric in two ways. In the first approach, we can average the metric over several trials and then compute the frequency offset from the averaged value as follows:
                              f          offset                =                                            T              s                                      2              ⁢              π              ⁢                                                          ⁢              L                                ⁢          ∠          ⁢                                    ∑                                                i                  =                  k                                ⁢                                                                                              k                +                K                -                1                                      ⁢                                          y                                  i                  +                  1                                            ⁢                                                y                  i                  *                                ·                                                                        Equation        ⁢                                  ⁢        6            H. Meyr, M. Moeneclaey, and S. A. Fechtel, Digital Communication Receivers—Synchronization, Channel Estimation and Signal Processing, John Wiley & Sons, 1998.
The other approach is to use the DD output metric in a phase locked ioop (PLL) as illustrated in FIG. 5. Id. The DD output X(1) 53 is an indication of the sign and magnitude of the frequency offset. A non-linear device 54 might be employed to obtain only the direction of the rotation in order to simplify the implementation. The output of the non-linear device may be filtered by a low pass filter 55 to remove the noise and accumulated 57 to provide an estimate of the frequency offset. The frequency offset is used to control a Direct Digital Frequency Synthesizer (DDFS) 59. A DDFS 59 produces at its output a sinusoid with a frequency controlled by the input frequency offset value.
This sinusoid is used to derotate 61 the input signal rj 63. The derotated signal 65 is used as the input to the DD 51. It can be easily seen that at the beginning, when the frequency offset estimate is not accurate, the DD will detect a frequency offset at its output. This non-zero output then increases/decreases the frequency offset estimate in the accumulator. When the frequency offset estimate is accurate, the DDFS perfectly compensate for the phase rotation due to the frequency output. Then the DD output is equal to zero and the PLL is stabilized (i.e., the accumulator stops increasing/decreasing the frequency offset estimate).
Diversity Methods
Diversity is a technique used in wireless communication systems to provide significant performance improvement and has been traditionally applied to improve the quality of data detection in wireless communication systems. T. S. Rappaport, Wireless Communications-Principles and Practice, Prentice Hall, 1996. Diversity exploits the random nature of radio propagation by processing independent copies of the transmitted signal. The different copies of the signal are received through what is typically called diversity branches. Different forms of diversity include: space (antenna) diversity; polarization diversity; frequency diversity; and time diversity. Diversity reception (combining) methods can be classified into the following categories: selection diversity; switched diversity; maximal ratio combining; and equal gain combining.
Antenna diversity is one of the most popular forms of diversity used in wireless systems. This form of diversity exploits the fact that signals received by spatially separated antennas (approximately half a wavelength at the mobile terminal) are essentially uncorrelated. Polarization diversity exploits the fact that signals received on the horizontal and vertical antenna polarization are essentially uncorrelated. Frequency diversity exploits the fact that in a wideband channel, signals received at a frequency separation greater than the coherence bandwidth of the channel are essentially uncorrelated. Time diversity exploits the fact that for a time varying channel, signals received at time spacing greater than the coherence time of the channel are essentially uncorrelated.
A selection diversity receiver employs M parallel diversity branches 67. A high level schematic/logic of a typical receiver using selection diversity is illustrated in FIG. 6. FIG. 6 illustrates a typical wireless receiver comprising M parallel diversity branches 67, each comprising an RF down-converter 69 and a data demodulator 71. Each diversity branch receives a time dependent signed Sm (t) 73. In a selection diversity receiver the signal of the diversity branch 67 with the highest instantaneous signal to noise ratio (SNR) selected 75 and input to the slicer 77.
A conceptual variation on a selection diversity receiver is a switched diversity receiver. A switched diversity receiver employs M diversity branches and a single RF/demodulator chain, rather than the parallel RF/demodulator chains found in the selection diversity receiver. In such a receiver, the M diversity branches are scanned until the received SNR exceeds a preset threshold, and upon exceeding the threshold, the signal is output to the slicer. If the SNR falls below the threshold level, the scanning process continues.
A high level schematic/logic of a typical maximal ratio combining receiver is illustrated in FIG. 7. This receiver, like the selection diversity receiver, utilizes M parallel diversity branches 67 each comprising an RF downconverter 69 and a data demodulator 71. Each diversity branch receives a time dependent signal S(t) 73. The M diversity branches 67 output to a common slicer 77. However, instead of selecting the signal with the largest SNR as is the case with a selection diversity receiver, in a maximal ratio combining receiver, the signals 73 from all diversity branches 67 are co-phased 87 and weighted 89 according to their individual SNR (Gi coefficients 91) before being summed.
In an equal gain combining receiver, instead of implementing a true maximal ratio combination, the branch weights are all set to unity, but the signals from each branch are co-phased to provide equal gain combining.